package com.mailbox.mailbox.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mailbox.mailbox.domain.Message;

import com.mailbox.mailbox.domain.Type;
import com.mailbox.mailbox.domain.responsePojo.ReturnMessage;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author 张铭辉
 */
@Mapper
@Repository
public interface ReceptionMapper extends BaseMapper<Message> {

    /**
     * 前台展示所有的留言信息
     * @return
     */
    List<ReturnMessage> findAllMessages(String phone);

    /**
     * 查询所有的留言
     * @return
     */
    List<ReturnMessage> findAllOpenMessages();

    /**
     * 查询所有的数据
     * @return
     */
    Integer findAllCounts(String phone);

    /**
     * 根据时间区间和类型查询留言
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param type 类型
     * @return
     */
    List<ReturnMessage> findSuchMessage(String startTime, String endTime, String type, String phone);

    /**
     * 根据类型所有的留言
     * @param type 类型
     * @return
     */
    List<ReturnMessage> findSuchMessageType(String type,String phone);

    /**
     * 根据时间区间查询留言
     * @param startTime 开始的时间
     * @param endTime 结束的时间
     * @return
     */
    List<ReturnMessage> findSuchMessageTime(String startTime,String endTime,String phone);

    /**
     * 根据类型查询个数
     * @param type 类型
     * @return
     */
    Integer selectByTypeCounts(String type,String phone);

    /**
     * 根据类型查询个数
     * @param type 类型
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return
     */
    Integer selectBySuchCounts(String type,String startTime,String endTime,String phone);

    /**
     * 根据时间查询个数
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return
     */
    Integer selectByTimeCounts(String startTime,String endTime,String phone);

    /**
     * 找到所有的类型
     * @return
     */
    List<Type> findAllTypes();

}